package ie.dkit.java3Demulation.objects3d;

import java.util.ArrayList;
import java.util.Collection;

import ie.dkit.java3Demulation.drawer.Circle3DDrawable;
import ie.dkit.java3Demulation.drawer.Line3DDrawable;
import ie.dkit.java3Demulation.transforming.Transformable;

public class Sphere implements Circle3DDrawable, Line3DDrawable, Transformable {

	private String name;

	Circle3D circle3D1, circle3D2, circle3D3;

	Line3D line3D1, line3D2, line3D3;

	public Sphere() {
		circle3D1 = new Circle3D(new Point3D(), 100, new Point3D(0, 0, 10));
		circle3D2 = new Circle3D(new Point3D(), 100, new Point3D(10, 0, 0));
		circle3D3 = new Circle3D(new Point3D(), 100, new Point3D(0, 10, 0));
		line3D1 = new Line3D(new Point3D(-100, 0, 0), new Point3D(100, 0, 0));
		line3D2 = new Line3D(new Point3D(0, 100, 0), new Point3D(0, -100, 0));
		line3D3 = new Line3D(new Point3D(0, 0, -100), new Point3D(0, 0, 100));
		name = "Sphere";
	}

	public Collection<Circle3D> getCircle3Ds() {
		Collection<Circle3D> returnValue = new ArrayList<Circle3D>();
		returnValue.add(circle3D1);
		returnValue.add(circle3D2);
		returnValue.add(circle3D3);
		return returnValue;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Collection<Line3D> getLines() {
		Collection<Line3D> returnValue = new ArrayList<Line3D>();
		returnValue.add(line3D1);
		returnValue.add(line3D2);
		returnValue.add(line3D3);
		return returnValue;
	}

	public Collection<Point3D> getPoints() {
		Collection<Point3D> returnValue = new ArrayList<Point3D>();
		returnValue.addAll(circle3D1.getPoints());
		returnValue.addAll(circle3D2.getPoints());
		returnValue.addAll(circle3D3.getPoints());
		returnValue.addAll(line3D1.getPoints());
		returnValue.addAll(line3D2.getPoints());
		returnValue.addAll(line3D3.getPoints());
		return returnValue;
	}

	public Point3D getRotationPoint() {
		// TODO Auto-generated method stub
		return null;
	}

	public void setRotationPoint(Point3D point3D) {
		// TODO Auto-generated method stub

	}

}
